iT邦幫忙

0

[筆記] SQL WHERE 1=1

sql
G米 2023-10-31 10:16:571950 瀏覽
  • 分享至 

  • xImage
  •  

撰寫SQL字串時使用WHERE 1=1有什麼用途?

由於WHERE 1 = 1的結果為true,因此在撰寫時可以忽略第一個條件,

寫出動態的SQL查詢(Dynamic SQL Query)

範例:

SELECT * 
FROM employees 
WHERE 1=1  
AND department_id = 3  
AND salary > 50000;

如果有新的查詢條件只需要加上AND XXXXXXXX即可,不需要就註解掉,

這種方法在開發、維護、判讀較為友善,

如果再開發API加入條件的判斷,撰寫時也較為容易,

範例:

sql += "SELECT * ";
sql += "FROM employees ";
sql += "WHERE 1=1 ";

if(條件1)
    sql += "AND department_id = 3 ";
else if(條件2)
    sql += "salary > 50000 ";
......

以上為個人的學習心得,如有內容有錯誤歡迎指正與交流~

/images/emoticon/emoticon07.gif

參考資料

  1. https://pushmetrics.io/blog/why-use-where-1-1-in-sql-queries-exploring-the-surprising-benefits-of-a-seemingly-redundant-clause/
  2. https://dotblogs.com.tw/invercent914/2013/09/16/118728

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
HoiDam
iT邦新手 5 級 ‧ 2023-11-02 11:16:05

-,- 亂教一通

"WHERE" + "AND".join([Array of conditions])
G米 iT邦新手 4 級 ‧ 2023-11-02 17:14:32 檢舉

為何亂教一通??
難道參考的資料是錯誤的嗎??

ktsai114 iT邦新手 5 級 ‧ 2023-11-09 10:12:14 檢舉

個人見解 1=1 是為了後面的 and / or 而存在的
我覺得不是錯誤

我要留言

立即登入留言